import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "about_orm.settings")

import django

django.setup()
from app01 import models

# 基于对象的查询，一对多
# 正向查询
book_obj = models.Book.objects.get(pk=1)
# print(book_obj.pub)  # 关联的出版社对象
# print(book_obj.pub_id)  # 关联的出版社的id

# 反向查询
pub_obj = models.Publisher.objects.get(pk=1)
# print(pub_obj)
# print(pub_obj.book_set)  # 类名小写_set 关系管理对象
# print(pub_obj.book_set.all())

# 若指定了related_name='books'。则没有类名小写_set方法
# print(pub_obj.books.all())


# 基于字段的查询,跨表单查询，先从书---出版社---查询name---输出回书的对象
# ret = models.Book.objects.filter(pub__name='商务印书馆')

# 不指定related_name='books'时候直接写类名小写__属性（跨表单查询你，从一表单中反向获取）
# ret = models.Publisher.objects.filter(book__name='英汉字典')
# 若指定
ret = models.Publisher.objects.filter(books__name='英汉字典')

print(ret)
